gtkmain: Correctly notify all widgets of a grab
authorTimm Bäder <mail@baedert.org>
Sun, 4 Dec 2016 11:48:50 +0000 (12:48 +0100)
committerTimm Bäder <mail@baedert.org>
Sat, 7 Jan 2017 16:19:30 +0000 (17:19 +0100)
gtk/gtkmain.c

index ba7b3c6303b2909aec43be276404bfc018e88ae1..ab233dcf694671302f859c1e7f212c2e1d7a9fcc 100644 (file)
@@ -2073,8 +2073,17 @@ gtk_grab_notify_foreach (GtkWidget *child,
 
   g_object_ref (child);
 
-  if ((was_shadowed || is_shadowed) && GTK_IS_CONTAINER (child))
-    gtk_container_forall (GTK_CONTAINER (child), gtk_grab_notify_foreach, info);
+  if (was_shadowed || is_shadowed)
+    {
+      GtkWidget *p;
+
+      for (p = _gtk_widget_get_first_child (child);
+           p != NULL;
+           p = _gtk_widget_get_next_sibling (p))
+        {
+          gtk_grab_notify_foreach (p, info);
+        }
+    }
 
   if (info->device &&
       _gtk_widget_get_device_window (child, info->device))